<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button class="btn">困了吗</button>
    <script>
        /* function foo(a,b){
            console.log(a,b);
        }
        foo(1,2);//函数调用
        // 自执行函数 IIFE
        (function(c){
            console.log(c)
        })(1);
        var fun = function(d){
            console.log(d)
        }
 */
        // es6 箭头函数
        let foo = (a)=>{
            console.log(a)
        }
        foo(1);
        /* document.querySelector('.btn').onclick = function(){
            
            console.log('困了的同学，自动站后面去！！')
        } */
        /* document.querySelector('.btn').onclick = ()=>{
            console.log('困了的同学，自动站后面去！！')
        } */
        /* document.querySelector('.btn').addEventListener('click',function(){
            console.log('困了的同学，自动站后面去！！')
        }) */
        /* document.querySelector('.btn').addEventListener('click',()=>{
            console.log('困了的同学，自动站后面去！！')
        }) */
        let aa = ()=>{
            console.log('王洋洋');
        }
        aa();
        // 在箭头函数中当有一个形参时，小括号可以省略，当有多个参数或者没有参数时，小括号不能省略
        let aa1 = a =>{
            console.log(a);
        }
        aa1(123);
        //在箭头函数当中当大括号中只有一条语句时大括号可以省略，多条语句不能省略大括号,该条语句的结果就是函数的返回值
        // 
        let aa2 = a => console.log(1 + a);
        let result = aa2(1);
        console.log(result);


        let obj = {
            jump:(a,b)=>{
                // jump函数的作用是什么？
                // a+b求和 c,并且在控制台答应了c
                // jump该函数有返回值吗？
                // 函数的返回值：函数有误返回值 看它有没有return 有return函数的返回值为return后面的值，没有return，则为undefined
                let c = a+b;
                console.log(c);
                // return 1;
            }
        }
        let result_obj = obj.jump();
        console.log(result_obj);
        // console 对象 对象上有个方法log 作用：在控制台打印1231

        let result_log = console.log('1231');
        console.log(result_log);
        /* 
        console对象
        log 对象上的方法
        console.log()

        
        */
        
        let aa3 = (a,b)=>{
            console.log(a+b);
            // 当大括号不省略时，函数若想有返回值，必须写return
        }

        // 箭头函数没有this指向，它的this指向为外层函数的this指向
        /* document.querySelector('.btn').onclick = function(){
            console.log(this);
        } */
        console.log(this);
        document.querySelector('.btn').onclick =()=>{
            console.log(this);
        }
        // 箭头函数没有原型
    </script>
</body>
</html>